
        <html>
			<head>
			     <title>CoolPad backdoor CoolReaper - 瘦蛟舞</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/4342">http://drops.wooyun.org/tips/4342</a></h1>
				
      <p>
        <p>注：译文未获得平底锅授权，纯属学习性质翻译</p>

<p>原文：<a href="https://www.paloaltonetworks.com/content/dam/paloaltonetworks-com/en_US/assets/pdf/reports/Unit_42/unit42-cool-reaper.pdf">https://www.paloaltonetworks.com/content/dam/paloaltonetworks-com/en&#95;US/assets/pdf/reports/Unit&#95;42/unit42-cool-reaper.pdf</a></p>

<h2>综述</h2>

<hr />

<p>宇龙酷派是中国第三大以及全球第六大智能手机生产厂商。最近我们研究发现许多高端酷派手机在预装软件均包含一个后门程序，我们将此后门称为：CoolReaper</p>

<p>在看到许多酷派用户反馈手机上的可疑现象后，我们下载了多个中国区发行的官方固件，其中大多数都包含了coolreaper这款后门应用。</p>

<p>CoolReaper表现出以下行为：</p>

<ul>
<li>静默下载、安装或者激活任意应用且不通知用户</li>
<li>清除用户数据、卸载已安装应用或者禁用系统应用</li>
<li>伪造OTA信息提示用户升级系统其实是安装一些推送的应用</li>
<li>发送短信或者彩信以及伪造手机中的短信或者彩信</li>
<li>拨打电话</li>
<li>上传用户设备信息、位置信息、应用使用情况、通话记录、短信记录到酷派服务器。</li>
</ul>

<!--more-->

<p>手机生产厂商一般会在设备中安装一些定制软件，但是coolreaper貌似不那么简单。一些移动运营商也会预装一些软件用于收集用户使用习惯和数据。Coolreaper比这些做的更多非常类似一个后门。</p>

<p>中国的酷派用户在网上反馈后门应用静默安装软件已经推送广告的行为。不过这些反馈信息均被酷派忽略或者删除。</p>

<p>酷派同时还在他们的许多固件中还更改了底层安卓系统。这些变动主要目的是隐藏后门coolreaper组件不被用户发现以及不被其他应用分析。这使用杀毒软件无法轻易检测到此后门应用。</p>

<p>9月，一个名乌云白帽子发现coolreaper后台系统的漏洞。后台呈现出coolreaper的各种操作指令。</p>

<p>现阶段酷派手机后门只能影响到中国用户，但是酷派的国际化战略意味着这款后门应用将有可能影响全球Android用户</p>

<h2>酷派后门</h2>

<hr />

<h3>User Reporting for this Threat</h3>

<hr />

<p>酷派是宇龙集团旗下智能手机品牌，港股编号：02369</p>

<p>根据华尔街日报及易观国际分析显示酷派是全球第六大智能手机生产厂商。而实际上，基于最新的IDC数据分析报告酷派占全球3.7%的市场份额。从2012年开始，酷派就已经成为了中国第三大智能手机制造厂商，2014第二季度占有市场份额11.5%。仅排在小米和联想之后。2014上半年酷派在中国4G手机市场份额占15.8%位居第一。</p>

<p>酷派手机旗舰系列取名halo（又叫大神手机），此系列涵盖了3G与4G两种通信制式。</p>

<p>酷派通用也有廉价产品。以下是其官方商城售卖的手机：</p>

<ul>
<li>The Halo (Dazen) series: Dazen F1, Dazen F1 Plus, Dazen 1S, Dazen F2, Dazen Note</li>
<li>The S series: Coolpad S6</li>
<li>The K series: Coolpad K1</li>
<li>The Magview series: Magview 9970, Magview 8971</li>
<li>Others: Coolpad 8730L, Coolpad 8720L, Coolpad 7295, Coolpad 9150W, Coolpad 9080W, Coolpad 5951, Coolpad 7295C, Coolpad 8908</li>
</ul>

<p><img src="http://static.wooyun.org/20150211/2015021110423448711.png" alt="" /> ￼</p>

<p>相对零售渠道，酷派更大的出货渠道是中国三大运营商：中国移动、中国联通以及中国电信。（定制机）</p>

<p>尽管不像苹果和三星那么出名，酷派在中国依然很畅销并且在国际市场迅速扩张，尤其是在4G手机市场。2014上半年，酷派生产制造29款新手机，其中12款支持4G网络。2013全年酷派生产了三千七百二十万台设备，并在2014年仅三月一个月中就生产了六百万台设备。酷派的目标是在2014年销售六千万台手机，大神系列预计销售超过一千万台。</p>

<h2>酷派全球扩张</h2>

<hr />

<p>根据华尔街日报报道，酷派计划向东南亚、欧洲以及美国市场进军。</p>

<p>在美国酷派官网销售以下三种机型：</p>

<ul>
<li>Coolpad Quattro 4G (Coolpad 5860E) </li>
<li>Coolpad Flo</li>
<li>Coolpad Quattro II</li>
</ul>

<p>2014年，酷派与MetroPCS公司（已被T-Mobile并购）合作在美国售出了超过一百三十万的Quattro 4G设备。2014年，酷派与GoSmart Mobile合作开始在美国销售酷派Flo手机</p>

<p>2013年初，酷派联合 Vodafone 与 France Télécom 在超过10个欧洲国家销售8860U 以及 8870U。</p>

<p>2014年7月初，酷派与东南亚的一运营商合作在印度和印尼运作，并且计划进军泰国、缅甸以及马来西亚市场。截至2014年9月，在这些国家已经销售超过50万大神系列手机。</p>

<h2>CoolReaper: The Coolpad Backdoor</h2>

<hr />

<p>2013年10月报告中的可疑界面开始出现中国用户的酷派手机中。用户反馈广告推送出现在通知栏，通过OTA升级后系统并未得到升级而是出现一些不是用户安装的新应用。为了定位这些反常事件我们开始调查酷派官方rom以及酷派修改过的rom</p>

<p>酷派提供大神系列、s系列、k系列zip格式的官方rom以及其他机型的定制官方rom。这些rom均能在酷派官方论坛或者官方服务中心下载到。酷派提供这些固件给用户OTA升级或者重新刷机. 我们猜测（并未确认）手机出厂时也是刷的这些rom。</p>

<p>2014年11月我们从酷派官方论坛下载了大神系列8个机型的45个官方rom。为了增大测试范围，我们又下载了其他20个机型的32个第三方rom。这些第三方固件都是基于官方固件修改的。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423514460.png" alt="" /></p>

<p>我们总共调查了77个酷派手机rom，其中64个包含后门coolreaper。大神系统8个机型有41个rom有后门，其他23个第三方固件设计16种机型也都有后门。我们确认至少有24种不同的酷派手机种存在coolreaper后门。下表是我们分析后的rom后门存在情况。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423596484.png" alt="" /></p>

<h3>CoolReaper Files and Versions</h3>

<hr />

<p>在分析的这些rom后门coolreaper分别以下文件名的形式存在：</p>

<ul>
<li>/system/app/CP_DMP.apk</li>
<li>/system/app/CP_DMP.odex</li>
<li>/system/app/GoogleGmsFramework.apk </li>
<li>/system/app/GoogleGmsFramework.odex </li>
<li>/system/lib/libgmsframework.so</li>
</ul>

<p>libgmsframework.so并不是个库文件，其实是一个apk文件。在同一个rom里此文件的内容与GoogleGmsFramework.apk相同。唯一区别是这个伪造的库文件使用调试证书签名。</p>

<p>我们发现的12个不同此coolreaper版本如下表</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423566634.png" alt="" /></p>

<p>开发者使用了编译日期作为版本号，使用编译日期+时间作为版本名称。利用这两个特征我们可以确认CoolReaper开发日期是2013年10月12号或者更早。</p>

<p>2014年5月我们注意到此后门做了一个版本升级，从2.x升级到3.0。同时后门的文件名由CP&#95;DMP.apk变更为GoogleGmsFramework.apk。我们怀疑酷派这么做是因为网上有用户反馈CP&#95;DMP.apk是恶意软件。</p>

<h3>Origin</h3>

<hr />

<p>有一种可能Coolreaper后门是由第三方制造的。不过根据分析我们相信后门是由酷派官方制作并且安装到酷派手机种的。</p>

<p>所有的CoolReaper的签名是酷派公司的，41个受影响的官方rom中都使用的相同的签名。</p>

<p>一些官方rom对底层安卓系统做了修改用于使coolreaper消失在用户和杀软的视线中。</p>

<p>用于给coolreaper发送控制指令的服务器使用的域名 coolyun.com 和 51Coolpad.com 是由酷派官方注册的。而且给用户提供云服务。</p>

<p>11月，Coolreaper后台控制系统被暴露。酷派确认存在此系统并且许诺修复漏洞。这个控制系统是coolyun.com的子域名。</p>

<h2>CoolReaper Analysis</h2>

<hr />

<p>为了分析后门的功能，我们从大神F2种提取一个coolreaper样本。F2基于android4.4，rom编译于11月18号</p>

<p>Build ID： 4.4.051.P2.141118.8675</p>

<p>ROM_SHA-1：39240a84070040c27221b477f101bf9b1555d7ce</p>

<p>PATH:/system/app/GoogleGmsFramework.apk</p>

<p>APK_SHA-1:3753244484c4a8b2b2dc8c3b7e119eabd0490398</p>

<p>后门apk使用了ProGuard进行代码混淆。混淆后的命名使得逆向工作十分困难。为了方便分析代码，我们参考其意图尝试重命名进行还原。读者将在这份报告中看到许多这样重命名后的截图。我们重命名方法遵循以下原则：</p>

<ol>
<li><p>CoolPreaper的开发者留下了许多debug信息可以帮助鉴别原类名或者方法名，如果可能我们尽量使用这些命名。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423654298.png" alt="" /></p></li>
<li><p>代码质量较高，开发者保持使用特定的框架。重命名的时候依据此框架。</p></li>
<li><p>当我们无法识别开发者意图命名时,我们根据此此对象的功能来命名。</p></li>
</ol>

<p>更改方法名使得代码可读性更高而且并不影响代码逻辑。</p>

<h3>System Application with System User ID</h3>

<hr />

<p>在安装有后门的固件中，CoolReaper以系统应用安装。所有的样本都有着同样的包名"com.android.update.dmp"。特征字符"DMP"出现在文件名、包名、C2的URL中以及其他地址,我们怀疑DMP就是 “Data Management Platform.”的缩写。</p>

<p>在配置文件AnroidManifest.xml中，coolreaper定义了android:sharedUserId属性为“android.uid.system”</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423654298.png" alt="" /></p>

<p>这样做coolreaper将拥有系统UID并以system权限运行。目的是将其变成系统应用而非第三方应用。</p>

<p>下面是从官方固件中提取的coolreaper的签名信息</p>

<pre><code>Owner: <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="27626a666e6b666363756274741a46494355484e43675e524b4849400944484a">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>, CN=YuLong, OU=YuLong, O=YuLong,
L=ShenZhen, ST=GuangDong, C=CN
Issuer: <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="9cd9d1ddd5d0ddd8d8ced9cfcfa1fdf2f8eef3f5f8dce5e9f0f3f2fbb2fff3f1">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>, CN=YuLong, OU=YuLong, O=YuLong,
L=ShenZhen, ST=GuangDong, C=CN
Serial number: fb1ecd58cb8358f7
Valid from: Fri Oct 22 08:26:53 PDT 2010 until: Fri Sep 21 08:26:53 PDT 2035
Certificate fingerprints:
       MD5:  DB:DB:3B:ED:34:72:B1:B3:C4:CA:59:BE:CD:33:9F:44
       SHA1: 5D:F8:F0:82:12:61:A2:34:D1:11:02:8E:FD:DF:FA:3C:88:89:76:49
       Signature algorithm name: SHA1withRSA
       Version: 3
</code></pre>

<h3>User Interface</h3>

<hr />

<p>CoolReaper显示的应用名字是"Android System",并且使用了其他真正系统应用的图标。CoolReaper在应用桌面是不可见的。</p>

<p>CoolReaper实现了很少的用户交互的组件。其中一些是不生效的，比如 com.android.update.dm.MainActivity . 还有一些恶意意图的功能，像组件 com.android.update.dmp.PretendedOTADialog 用于显示一些伪造的OTA升级通知。 com.android.update.dmp.weblinkhandler.WebLinkActivity 用于通过远程控制打开指定页面。</p>

<p>大多数的恶意功能均是静默实现不需要与用户进行交互，用户很难发现和阻止。</p>

<h3>Code Structure</h3>

<hr />

<p>CoolReaper主要代码可以分割成两个组件：DMP和ICU</p>

<p>在DMP的java class都有前缀"com.android.update.dmp"。他们负责接收从C2服务器发送的命令、下载相关文件表现为本地恶意行为。此组件可以通过开机、联网、点亮屏幕触发。当这些事件发生时，DMP在后台启动一个服务：com.android.update.dmp.SystemOptService</p>

<p>在ICU组件中的java class前缀为：com.android.icu，他们负责手机用户信息并发送到C2服务器。ICU以系统服务形式运行：com.android.icu.service.SystemPipeService</p>

<p>以上分析显示DMP和ICU是分别开发的，他们有着不一样的功能、不一样的路径、不同的的C2地址并且不相互影响。</p>

<h3>Component Functionalities</h3>

<hr />

<p>CoolReaper中的DMp和ICU组件实现了很多功能，当他们组合起来时变成一个非常强大的后门。</p>

<p>DMP组件主要负责远程控制设备，此组件的具备以下功能：</p>

<ul>
<li>下载指定APK文件，OTA升级且不需要用户确认</li>
<li>后台安装apk不需要用户确认</li>
<li>启动任意已安装的应用且不需要用户确认</li>
<li>启动任意应用指定的服务不需要用户确认</li>
<li>后台静默卸载任意应用不需用户确认</li>
<li>桌面任意创建或者删除快捷方式</li>
<li>清除指定应用数据不需要用户确认</li>
<li>禁用或者激活任意系统应用不需要用户确认</li>
<li>通知用户正常OTA升级</li>
<li>伪造OTA升级通知</li>
<li>使用之前下载好的升级包强制OTA升级</li>
<li>拨打任意电话不需要用户确认</li>
<li>发送指定短信内容到指定号码不需用户确认</li>
<li>插入任意指定短信活彩信到收信箱并且在通知栏显示伪造通知</li>
<li>通过默认浏览器打开指定链接</li>
<li>设置或者获取系统变量</li>
<li>弹出通知栏或者对话框，如果用户点击将会下载指定apk</li>
<li>弹出通知栏，用户点击后拨打指定号码</li>
<li>弹出通知栏，用户点击后显示指定页面</li>
<li>弹出通知栏，用户点击后登录或者安全指定应用</li>
<li>上传用户磁盘信息到c2服务器</li>
<li>上传用户手机是否root的信息到C2服务器</li>
</ul>

<p>另一方面，ICU组件主要负责手机用户信息发送到C2服务器，ICU收集如下信息：</p>

<ul>
<li>设备硬件信息</li>
<li>设备地理位置信息包括城市、省份信息</li>
<li>安装的应用以及使用频率信息</li>
<li>通话数以及短信收发数量</li>
<li>网络信息，包括联网类型以及联网时间</li>
</ul>

<p>上述功能明显表明CoolReaper可以扮演后门的角色。后台操作者可以轻易的在用户设备上卸载或者禁用安全软件、安装恶意软件、窃取用户信息以及注入虚假信息。</p>

<p>除了这些功能外，代码里许多调试字符串就包含"backboor"关键字。比如下面的类"BackDoorManager"含有有一个方法"processBackDoor"</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423650913.png" alt="" /></p>

<p>当启动伪造OTA升级功能时，反馈报告里的信息是"the preset app back door is opened!"，以及在默认配置文件中一个item取名为"isBackDoorMsgSended"</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423764234.png" alt="" /></p>

<p>这些调试信息、反馈信息自身显然不是恶意软件，但是通过这些字符串可以看出CoolReaper的制作者的意图是想在设备中安置后门。</p>

<p>CoolReaper包含太多功能不能再这里一一描述。附录中将贴出其后门功能的代码截图</p>

<h3>Command and Control Servers and the Coolyun Service</h3>

<hr />

<p>CoolReaper的DMP和ICU组件使用不同URL群作为他们的指令服务器。</p>

<p>DMP组件的后台的域名和ip信息如下：</p>

<ul>
<li>dmp.51Coolpad.com</li>
<li>dmp.coolyun.com</li>
<li>13.142.37.149</li>
</ul>

<p><img src="http://static.wooyun.org/20150211/2015021110423798488.png" alt="" /></p>

<p>在我们分析时这些域名解析到13.142.37.149，CoolReaper有能力在任何时候更新C2的地址</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423873611.png" alt="" /></p>

<p>DMP组件使用HTTP POST请求与C2服务器通信，当获取到命令或者上传信息的时候，它会使用特别的User-agent："UAC/1.0.0 (Android &lt;Build.VERSION.RELEASE>; Linux)"。这里的&lt;Build. VERSION.RELEASE>是安装在手机中android操作的系统的版本。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423819402.png" alt="" /></p>

<p>在CMP组件里，Coolreaper使用了13个不用的URL用来注册设备、获取指令、返回执行结果、上传执行信息、下载apk文件以及执行其他任务。这些URL如下：</p>

<ul>
<li>http://dmp.51Coolpad.com/dmp/api/getfirstpushmsg </li>
<li>http://dmp.coolyun.com/dmp/api/userregister</li>
<li>http://dmp.coolyun.com/dmp/api/getstrategy</li>
<li>http://dmp.coolyun.com/dmp/api/getpushmsg</li>
<li>http://dmp.coolyun.com/dmp/api/reportpushmsg</li>
<li>http://dmp.coolyun.com/dmp/api/updatepushmsg</li>
<li>http://dmp.coolyun.com/dmp/api/exceptupload</li>
<li>http://dmp.coolyun.com/dmp/api/setuserstate</li>
<li>http://dmp.coolyun.com/dmp/api/getapkupdate</li>
<li>http://dmp.coolyun.com/dmp/api/strategyandupdate </li>
<li>http://dmp.coolyun.com/dmp/api/ctruleservlet</li>
<li>http://dmp.coolyun.com/dmp/api/ctrulereportservlet </li>
<li>http://dmp.coolyun.com/dmp/api/strategyandupdate</li>
</ul>

<p>ICU组件使用如下URL下载配置数据以及上传用户信息：</p>

<ul>
<li>http://icudata.coolyun.com/</li>
<li>http://icudata.51Coolpad.com/</li>
<li>http://113.142.37.246/filereceiver</li>
<li>http://icucfg.coolyun.com/</li>
<li>http://icucfg.51Coolpad.com/</li>
<li>http://113.142.37.246/icucfg</li>
<li>http://file.Coolpadfuns.cn/actioncollect</li>
</ul>

<p>coolyun.com除了发送指令控制设备外还解析为酷派官方云服务：酷云。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110423950293.png" alt="" /></p>

<p>通过酷云，酷派提供服务以及应用给安卓用户。我们对比了CoolReaper以及酷云客户端来确认它是否是酷云的合法管理应用</p>

<p>酷云客户端的包名为：com.android.coolwind 。它在cooyun.com以及各大应用市场均能下载。我们注册了一个酷云帐号发现其只给用户提供了少量服务，包括备份联系人以及云存储。这些功能和coolReaper比起来简直小巫见大巫。</p>

<p>事实上，处理使用同样的C2域名外，CoolReaper和酷云唯一的关系就是ICU组件在设备上收集酷云帐号并且发送到C2服务器。</p>

<h2>CoolReaper Back-End</h2>

<hr />

<p>一般来说像像CoolReaper这种后门的后台控制系统是很难被找到或者公开的，但是最近酷派开发给我们了一个机会去见识下酷派到底是怎么使用这个后门的。</p>

<p>2014年9月19号，乌云白帽子"爱上平地山"在乌云网上报酷派漏洞<a href="http://www.wooyun.org/bugs/wooyun-2014-083824">酷派官方静默安装apk功能后台存在高危漏洞(演示定制机是如何在你的手机默默安装)</a>。同天酷派确认此漏洞并且评论"感谢提供，我们尽快解决，谢谢。"</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424032679.png" alt="" /></p>

<p>乌云负责任的漏洞披露流程，意味着漏洞细节不能马上公开。尽管如此，作为一个乌云白帽子我们能在酷派确定漏洞一个天数后看到漏洞细节。</p>

<p>漏洞细节是一个代码执行导致被getshell，然后白帽子进入了酷云权限管理平台：auth.coolyun.com。平台上显示有如下功能：</p>

<ul>
<li>PUSH伪装OTA推app</li>
<li>静默安装apk</li>
<li>PUSH激活应用</li>
<li>PUSH后台命令</li>
</ul>

<p><img src="http://static.wooyun.org/20150211/2015021110424038524.png" alt="" /></p>

<p>通过安全牛的报道，得到一张没有马赛克的后台系统截图。显示该系统具有如下功能：</p>

<ul>
<li>静默安装apk</li>
<li>静默卸载apk</li>
<li>后台激活第三方应用</li>
<li>后台激活第三方服务</li>
<li>PUSH后台指令下发</li>
<li>PUSH推送APK</li>
<li>PUSH激活应用</li>
<li>PUSH打开网页链接</li>
<li>PUSH推送HTML</li>
<li>PUSH推送拨打电话</li>
<li>PUSH短信伪装插入</li>
<li>PUSH彩信伪装插入</li>
<li>PUSH伪装OTA推APP</li>
<li>PUSH推OTA升级包</li>
<li>PUSH发OTA升级广播</li>
</ul>

<p><img src="http://static.wooyun.org/20150211/2015021110424163748.png" alt="" /></p>

<p>上面的描述的功能和分析的CoolReaper实现的代码均能对应上</p>

<p>2014年11月21日，安全牛发表了第二篇文章酷派公关陈述：仅用于内部测试。要求安全牛撤稿，安全牛要求其发送正式信函并且出示相关证明，之后酷派并未回应。</p>

<h2>Hiding CoolReaper from Users</h2>

<hr />

<p>酷派手机的固件除了包含CoolReaper后门外还做其他改动意图来隐藏此后门</p>

<h3>Hidden from list of Installed Packages</h3>

<hr />

<p>第一处变动位于/system/framework/services.odex 此文件为安装系统实现了基础服务以及其他组件。酷派修改了PMS中的getInstalledPackages方法用于收集安装于android的包。改动还特意照顾了"com. android.update.dmp"酷派后门，用于阻止其返回给请求程序。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424116364.png" alt="" /></p>

<p>此处改动不仅从用户角度隐藏了此后门包同时也能规避杀软和MDM。也就是说杀软是无法扫描到它以及判断它是否为恶意软件。</p>

<h3>Disable Notifications Menu</h3>

<hr />

<p>第二处改动是在 /system/app/SystemUI.odex 。酷派更改了com.android.systemui.statusbar.BaseStatusBar类的getNotificationLongClicker方法。</p>

<p>通常来讲，当android应用在系统通知栏显示通知时，用户可以通过长按通知栏来鉴别此通知的来源而且可以禁用此通知。</p>

<p>但是通过更改代码，任何CoolReaper的通知信息都将阻止用户去鉴别来源。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424247555.png" alt="" /></p>

<h3>Evading Pre-Installed Antivirus Program</h3>

<hr />

<p>第三处改动是用于预安装酷派自家的安全应用"酷管家"，此款应用提供基本杀毒以及其他安全服务。每当应用安装或者更新的时候，酷管家都将进行安全扫描。与之前的改动类似，如果扫到包名为"com.android.update.dmp"将会绕过其扫描。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424221186.png" alt="" /></p>

<h2>CoolReaper Reach and Impact</h2>

<hr />

<h3>Customer Reports</h3>

<hr />

<p>9月30号在谷歌搜索后门CoolReaper的应用名“CP_DMP.apk”,我们发现有236条搜索结果。其中大多数是酷派用户在论坛讨论此文件</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424399408.png" alt="" /></p>

<p>从2013年9月开始，用户开始讨论他们的酷派手机发生的一些如下莫名行为：</p>

<ul>
<li>设备自动升级</li>
<li>设备频繁在通知栏收到广告通知</li>
<li>设备静默安装许多游戏</li>
<li>设备提示OTA升级，重启后发现系统并未升级只是多出了11个新应用</li>
</ul>

<p><img src="http://static.wooyun.org/20150211/2015021110424322049.png" alt="" /></p>

<p>用户抱怨之后不久，coolreaper进行了一次升级，版本由2.x升级到3.0.应用名由CM&#95;DMP.apk变为GoogleGmsFramework.apk。我们认为此次升级的意图是为了隐藏后门来躲避用户已经定位的文件。这招貌似成功逃过了用户通过应用名"CP&#95;DMP.apk"来定位后门的方法。下图的帖子中一个用户询问：为何删除了CP_DMP.apk，几天后广告又出现了，我们该怎么搞它？</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424327557.png" alt="" /></p>

<h3>Geographic Range of Impact</h3>

<hr />

<p>我们不知道多少酷派设备包含coolreaper后门，考虑到coolreaper被加入到最近12月生产的24种机型里，以及IDC公布的酷派销售目标，故影响的设备非常可能超过一千万。</p>

<p>大多受影响的设备都是在中国，貌似这个后门是为中国人定制的。后门的一处代码显示通过判断设备SIM卡的IMSI来确定其运营商归属</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424440875.png" alt="" /></p>

<p>2014年11月25日，我们在加利福利亚购买一部酷派FLo手机并未发现其包含有CoolReaper后门，这个手机制造时间超过一年，应该是它制造日期太早没来得及放入后门。我们并未分析前面提到的另两款在美国销售的机型以及其在欧洲和东南亚销售的机型。只有中国发行的ROM可以被下载。</p>

<p>Coolreaper存在非中国地区可能基于以下几个原因：</p>

<ul>
<li>在C2C网站像eBay这也，一些酷派手机从中国用户手中流出</li>
<li>CoolReaper已经被安装在国外销售的机型中只是并未出现在我们所分析的设备</li>
<li>通过官方OTA升级CoolReaper被远程安装，CP&#95;OTA.apk具有此功能。这个包被安装在美国销售的酷派FLo上。有用户抱怨，删除CP&#95;DMP.apk后，其有被自动重新安装。这个重新安装的过程可能是通过ota机制实现实的。</li>
</ul>

<p>2014年10月，两位用户反馈酷派5950t被植入后门</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424471890.png" alt="" /></p>

<p>除了上面两位用户的反馈，11月11号我们检测到CoolReaper控制指令http请求报文。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424598454.png" alt="" /></p>

<h2>Detection and Protection</h2>

<hr />

<p>CoolReaper很难被杀软检测到以及删除。酷派通过更改android底层系统来绕过安全软件的检测coolreaper。coolreaper使用的是酷派官方证书签名，这也又可以绕过一些基于白名单机制的检测的安全软件。另外，如果杀软能检测到此后门，也没有在非ROOT的情况下删除后门的权限，因为coolreaper是以系统应用安装的。</p>

<p>2014年4月以及7月。三个coolreaper的样本被上传到VirusTotal。8月23、24，安全机构将这三个样本定性为恶意、可疑文件。尽管样本被标识为"Generic"或者"agent"族，这些表明安全机构没有精确定位到此恶意应用。一些机构将其定位为"Trojan.Android.Andup.a"是不准确的。</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424556050.png" alt="" /></p>

<!--

Palo Alto 的解决方案是检测并阻止Coolreaper的全部网络流量。此防护方法基于以下三级：

1.  所有已知coolreaper样本在Wildfire系统标记其为恶意应用。如果设备下载到Coolreaper的更新包，我们的下一代防火墙将会鉴别其为恶意应用

2.  所有已知CoolReaper使用C2的URl在Threat Prevention AV and PANDB中被标记为恶意行为

3.  IPS标记coolreaper与C2的通信，即使C2更改地址也会被检测到并阻止。

-->

<p>酷派个人用户，我们建议通过root explorer软件查看你的手机是否有以下文件：</p>

<ul>
<li>/system/app/CP_DMP.apk</li>
<li>/system/app/CP_DMP.odex</li>
<li>/system/app/GoogleGmsFramework.apk </li>
<li>/system/app/GoogleGmsFramework.apk </li>
<li>/system/lib/libgmsframework.so</li>
</ul>

<p>如果存在以上任意一个文件，你的手机就很有可能存在CoolReaper后门。如果你的手机已经root，你可以使用root权限轻易的删除这些文件。不过，酷派还是有可能通过OTA升级给你安装新的后门。</p>

<h2>Conclusions and Risks</h2>

<hr />

<p>基于以上分析我们对Coolreaper做了如下总结：</p>

<ul>
<li>Coolreaper使用酷派官方数字证书签名，安装在酷派官方固件中使用酷派的服务器控制发送指令</li>
<li>酷派承认存在手机管理接口，而这个接口的功能更Coolreaper实现的功能对应。这个接口的服务存在漏洞以及被人利用入侵</li>
<li>酷派官方固件做了改动来避免用户以及杀软发现coolreaper</li>
<li>在许多用户反馈和抱怨被强制推送了广告和应用后酷派并未解决这些问题</li>
</ul>

<p>也许酷派制作这款程序的目的是为了帮助用户提升用户体验。手机厂商在设备上安装定制软件，但是coolreaper功能已经完全超出了用户的预期。这个后门能让酷派完全控制任意酷派手机。中国用户已经反馈此系统正用于推送广告和应用。</p>

<p>事实上coolreaper的管理接口很可能被攻击者利用漏洞拿下，这样对用户的威胁将会更大。尽管现在被修复一个，但是谁能保证以后不再有了。</p>

<p>已知的coolreaper后门仅影响中国用户，但是随着酷派的全国扩张这个后门很可能影响到全球Android用户。</p>

<!--

##Acknowledgements

---


We would like to thank Hui Gao and Zhaoyan Xu of Palo Alto Networks for ensuring that our customers are well protected by Palo Alto Networks’ Antivirus, Wildfire, IPS and URL Filtering products. We would also like to thank 6fc67ebcb6423efa0619877722ffc3ee and Zhi Xu of Palo Alto Networks for their help with the analysis of CoolReaper.

-->

<h2>Appendix A:</h2>

<hr />

<h3>Significant Malicious Behaviors</h3>

<p>Coolreaper实现的大多数功能都能归类为恶意意图，下列代码展示此后门的各种行为。</p>

<p>后台安装下载apk</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424548617.png" alt="" /></p>

<p>后台卸载apk</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424625733.png" alt="" /></p>

<p>打开指定应用</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424681860.png" alt="" /></p>

<p>清除指定应用数据</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424617887.png" alt="" /></p>

<p>激活禁用指定系统应用</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424765698.png" alt="" /></p>

<p>伪造ota更新用于打开后门</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424795061.png" alt="" /></p>

<p>拨打指定号码</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424856598.png" alt="" /></p>

<p>发送任意短信</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424870158.png" alt="" /></p>

<p>伪造任意短信到收信箱</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424891546.png" alt="" /></p>

<p>弹出收到伪造短信的通知</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424923233.png" alt="" /></p>

<p>伪造任意彩信到收信箱</p>

<p><img src="http://static.wooyun.org/20150211/2015021110424924456.png" alt="" /></p>

<p>获取或者设置系统变量</p>

<p><img src="http://static.wooyun.org/20150211/2015021110425067310.png" alt="" /></p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          